package com.sunmnet.j2ee.service.powerdb.designer;

import com.sunmnet.j2ee.entity.powerdb.designer.Field;
import com.sunmnet.j2ee.entity.powerdb.designer.IndexInfo;
import com.sunmnet.j2ee.service.BaseService;

import java.util.List;
import java.util.Map;


public interface IndexInfoService  extends BaseService<IndexInfo,Long> {

	/**
	 * @param entityId
	 * @param versionId
	 * @return
	 */
	List<IndexInfo> getIndexs(Long entityId, Long versionId);

	/**
	 * 将主键字段添加进索引表
	 *
	 * @param obj 主键字段数据
	 */
	void addPmKeyFieldToIndex(Field obj);

	/**
	 * 根据字段id删除索引
	 *
	 * @param fieldId
	 */
	short deleteIndexByFieldId(long fieldId) throws Exception;

	/**
	 * 根据模块编号和版本编号获取索引
	 *
	 * @param moduleId
	 * @param versionId
	 * @return
	 */
	List<IndexInfo> getIndexInfos(Long moduleId, Long versionId);

	/**
	 * 拷贝索引成新版本
	 * @param list 原索引链表
	 * @param copyedEntitys 实体编号对应关系Map
	 * @param copyedFields 字段编号对应关系map
	 * @param versionId 版本编号
	 * @param newModuleId 新模块编号
	 */
	void copyIndexs(List<IndexInfo> list, Map<Long, Long> copyedEntitys, Map<Long, Long> copyedFields, Long versionId, Long newModuleId);

}
